On-line service providers (OSPs), such as America Online, Inc., CompuServe, and various Internet world wide web site operators, provide users at client computers with various resources including electronic mail, chat, news, financial information, travel planning information, local weather information, and other information.
FIG. 1 shows a network 100 that includes OSP servers 111-116 as well as client computers 131-133. Each client computer 131-133 may execute a browser or other software application that allows a user to select information for retrieval from the servers 111-116 and which presents retrieved information to the user. The browser may display hypertext links, menus, dialog boxes, or other graphical user interface (GUI) control objects, may accept keyboard entry, or may have other input mechanisms that allow a user to select the desired information. When the user selects the information that he or she wants to receive, control data is sent from the browser application to an OSP server and, in response, the server sends the selected information to the user.
Data may be exchanged between browsers at client computers 131-133 and servers 111-116 over data paths that include access connections 134-136, a point of presence (POP) 130, and network 120. The POP 130 includes data communications equipment that enables and regulates communication between client computers 131-133 and the network 120. POP 130 may include dial-up modem banks, cable modem banks, wireless communications equipment, or other data transmission equipment. POP 130 also may implement security and authentication mechanisms to prevent unauthorized access to the network 120 or servers 111-116. For example, before granting a client computer 131-133 access to the network 120, the pop 130 may need to receive a valid user name and password from a client computer""s user.
In addition to sending user-selected information to a client computer, an OSP may want to independently select information and send it to the user. For example, an OSP may want to send advertisements, information from business partners, service usage instructions, and other helpful information to a user. The OSP may want to present the information selected by the user (xe2x80x9cuser-selectedxe2x80x9d information), and the information selected by the OSP (xe2x80x9cserver-selectedxe2x80x9d information) using separate GUI windows. Separate presentation of user-selected and server-selected data may help to distinguish information selected by the user from that selected by the OSP.
To separate server-selected and user-selected data, user-selected data may be displayed in a main browser window and server-selected data may be displayed using a popup window (a xe2x80x9cpopupxe2x80x9d). A popup is a GUI window that can be displayed by a browser in response to a host computer request. For example, when a user selects data using an America Online, Inc. (AOL) version 4.0 browser (an xe2x80x9cAOL browserxe2x80x9d), or using a hypertext transfer protocol-based browser (an xe2x80x9cHTTP browserxe2x80x9d), the user-selected data may be sent from a host computer to the browser and displayed in a main browser window. The host computer can also send instructions to the browser to display a popup window in which server-selected data can be presented to the user. The user may then be able to independently close, scroll, resize and otherwise interact with the main and popup browser windows.
Multiple logically interrelated data items can be received at a browser and displayed in a window. The display of interrelated data items can be simultaneous or sequential. For example, an OSP server may select a product advertisement that is to be displayed to a user in a popup window. The product advertisement can include a descriptive text file and a product picture that are simultaneously displayed to a user along with a product order GUI button. If the user selects the product order GUI button, the user""s browser can send control data to an OSP server indicating that the button was selected. In response, the OSP server may send an order form to the client computer for display in the popup window. The displayed order form may replace or be appended to the previously displayed text, picture, and button information. Thus, the product advertisement selected by the OSP server includes descriptive text, a picture, and a GUI button that are simultaneously displayed to a user and an order form that is displayed sequentially following the selection of the GUI button. In the descriptions that follow, a collection of logically interrelated data items is referred to as a xe2x80x9cdata flow.xe2x80x9d Data flows can include server-selected data flows and user-selected data flows.
An OSP can pre-select server-selected data flow (and their sub-components). Pre-selection can be performed by statically associating particular server-selected data flows with particular user-selectable data flows. For example, an OSP can associate a car polish advertisement data flow with user-selectable information describing particular models of cars. When a user requests information about a particular model of car from an OSP server, the OSP server can send the requested car information for display in a main browser window and may send the associated car polish advertisement for display in a popup window. Server-selected data flows also may be randomly determined or selected using other mechanisms. For example, an OSP server can analyze text in user-selected data and attempt to determine topics of interest to that user. The OSP server may then select data flows based on the determined topics.
While existing mechanisms allow presentation of server-selected data flows, the present inventor recognizes the need for additional flexibility in selecting, arranging, structuring, and presenting such data flows. The present inventor also recognize a need for flexible gathering and application of statistical data related to data flows. For example, the present inventor recognizes that it may be desirable to alter the contents of a data flow depending on previously determined user""s statistics, and it may be desirable to alter a selection of data items in the data flow based on a user""s identity.
In general, in one aspect, the invention features a computer-implemented information transfer method. The method includes evaluating a selection rule at a server to select a data flow and to determine contents of the data flow. The method also includes sending the contents of the data flow to another computer for presentation to a user.
Implementations may include one or more of the following features. A selection rule may include statements expressed in a programming language that includes Boolean logic, variable manipulation, and data access functionality. A statistical data set may be determined by the selection rule to identify statistical data that is gathered and stored as the data flow is presented to the user. The contents may be presented using a popup window at a client computer. The selection rule may be evaluated in response to a selection request received from another server. The selection rule may be evaluated in response to one of a number of different triggers that are associated with the state of the user, client computer, server computer, and/or other computers in a network.
In another aspect, the invention features a computer-readable medium. The medium includes instructions for causing a computer, i.e., server or client computer, to evaluate a selection rule to select a data flow and to determine contents of the data flow. The medium also includes instructions to send the contents of the data flow to another computer for presentation to a user. The medium may also include instructions to determine a statistical data set associated with the data flow based on an identity of the user and instructions to receive a selection request that includes the identity of the user from another server. One or more selection rules may be evaluated in response to the receipt of the selection request.
In general, in another aspect, the invention features a server that includes a database, a network interface, memory and a processor. The database includes a number of selection rules. Each selection includes instructions to determine the contents of a data flow associated with the selection rule. The processor is operatively coupled to the network interface, the database, and the memory. The memory includes executable instructions for causing the processor to evaluate a selection rule to select a data flow and to determine contents of the data flow. The memory may also include instructions for causing the processor to send information identifying the contents of the data flow to another computer for presentation of the contents to a user.
Implementations may provide one or more of the following advantages. The invention can be used to dynamically alter the contents of a data flow depending on previously determined data or dynamically determined data and on information associated with a particular user or groups of users. For example, the invention may be used to select items in a data flow based on a user""s identity. The invention also may be used to dynamically customize sets of statistical information that are gathered when a data flow is presented to a user.
Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.